package com.sondon.mayi.fragment;

import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.ViewById;
import org.apache.http.Header;

import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;

import com.loopj.android.http.TextHttpResponseHandler;
import com.sondon.mayi.activity.CartActivity_;
import com.sondon.mayi.activity.LoginActivity_;
import com.sondon.mayi.activity.MainTabActivity_;
import com.sondon.mayi.activity.NoticeActivity_;
import com.sondon.mayi.adapter.OrderListAdapter;
import com.sondon.mayi.configs.URLConfigs;
import com.sondon.mayi.entity.OrderListEntity;
import com.sondon.mayi.events.OrderListUpdateEvent;
import com.sondon.mayi.fruit.R;
import com.sondon.mayi.ui.MyMultipleTopBar;
import com.sondon.mayi.ui.TopBarClickListener;
import com.sondon.mayi.util.AsyncHttpUtil;
import com.sondon.mayi.util.GsonUtil;
import com.sondon.mayi.util.LogUtil;
import com.sondon.mayi.util.PreferencesUtil;
import com.sondon.mayi.util.ToastUtils;
/**
 * 
 * @Project : Fruit
 * @Package : com.sondon.mayi.fragment
 * @Class : OrderFragmentPage
 * @Author : 蔡文锋
 * @DateTime：2015年7月6日 下午10:58:27
 * @Blog：http://blog.csdn.net/caiwenfeng_for_23
 * @Description : { 订单页面 }
 *
 */
@EFragment(R.layout.myorders)
public class OrderFragmentPage extends BaseFragment {
	@ViewById
	MyMultipleTopBar topBar;
	@ViewById
	Button order_login_butt;// 登录/注册
	@ViewById
	RelativeLayout order_unlogin_layout;// 未登录时的布局
	@ViewById
	RelativeLayout order_empty_layout;// 订单列表空时的布局
	@ViewById
	ListView orderlist;// 订单列表
	@Bean
	OrderListAdapter adapter;//适配器
	
	//初始化
	@AfterViews
	public void initView() {

		// topbar的监听事件
		topBar.setTopBarClickListener(new TopBarClickListener() {

			@Override
			public void rightBtnClick() {
				// 购物车
				openActivity(CartActivity_.class);
			}

			@Override
			public void leftBtnClick() {
				// 动态消息
				openActivity(NoticeActivity_.class);
			}
		});
		
		//请求获取订单列表数据
		initOrderlist();

	}

	@Click({ R.id.order_login_butt, R.id.order_empty_layout })
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.order_login_butt://登录/注册
			openActivity(LoginActivity_.class);
			break;
		case R.id.order_empty_layout://点击空列表
//			Bundle bundle=new Bundle();
//			bundle.putInt("position", 0);
//			openActivity(MainTabActivity_.class,bundle);
			myprefs.position().put(0);
			openActivity(MainTabActivity_.class);
			break;

		default:

			break;
		}
	}

	@Override
	public void onResume() {
		super.onResume();
		//设置消息
		String news_code=myprefs.news_code().get();
		if("0".equals(news_code)){
			topBar.setNoticeNews(true);
		}else{
			topBar.setNoticeNews(false);
		}
	}
	
	//请求获取订单列表数据
	public void initOrderlist(){
		// 判断是否已经登录
		if (!myprefs.is_login().get()) {
			orderlist.setVisibility(View.GONE);
			order_empty_layout.setVisibility(View.GONE);
			order_unlogin_layout.setVisibility(View.VISIBLE);
		}else{
			//发送订单列表请求
			AsyncHttpUtil.get(URLConfigs.OrderList_ukey+myprefs.Ukey().get(), null, new TextHttpResponseHandler() {
				
				@Override
				public void onSuccess(int status, Header[] arg1, String json) {
					if(status==200){
						LogUtil.e(TAG, "OrderFragmentPage json :"+json);
						OrderListEntity orderListEntity=GsonUtil.GetFromJson(json, OrderListEntity.class);
						if(orderListEntity.isStatus()){
							//订单列表有数据,设置可见
							orderlist.setVisibility(View.VISIBLE);
							order_empty_layout.setVisibility(View.GONE);
							order_unlogin_layout.setVisibility(View.GONE);
							//设置适配器 
							orderlist.setAdapter(adapter);
							//填充数据
							adapter.SetData(orderListEntity.getList());
						}else{
							//订单列表无数据,设置不可见
							orderlist.setVisibility(View.GONE);
							order_empty_layout.setVisibility(View.VISIBLE);
							order_unlogin_layout.setVisibility(View.GONE);
						}
					}
				}
				
				@Override
				public void onFailure(int arg0, Header[] arg1, String arg2, Throwable arg3) {
					ToastUtils.show(getActivity(), R.string.network_unavailable);
				}
			});
		}
	}
	
	
	//定义订单列表刷新事件
	public void onEventMainThread(OrderListUpdateEvent event) {
		initOrderlist();
	}
}